package com.dadaguai.service;

import com.dadaguai.common.BusinessException;
import com.dadaguai.common.R;
import com.dadaguai.domain.ForumArticle;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dadaguai.dto.ForumArticleDto;
import com.dadaguai.dto.UserInfoDto;

import javax.servlet.http.HttpSession;

/**
 * @author 王半仙
 * @description 针对表【forum_article(文章信息)】的数据库操作Service
 * @createDate 2023-10-20 11:28:40
 */
public interface ForumArticleService extends IService<ForumArticle> {

    /**
     * 分页获取板块下的所有文章
     *
     * @param session
     * @param boardId     板块id
     * @param sort        排序方式（降序）0=默认  1=阅读量，2=发布时间，3=点赞量
     * @param page        当前页
     * @param size
     * @param searchField
     * @return
     */
    R getArticleList(HttpSession session, String boardId, String sort, Integer page, Integer size, String searchField);

    /**
     * 获取帖子详细信息
     *
     * @param id       帖子id
     * @param userInfo
     * @return
     * @throws BusinessException
     */
    ForumArticleDto getArticleInfo(String id, UserInfoDto userInfo) throws BusinessException;

    /**
     * 更新帖子点赞、评论、收藏、分享数
     *
     * @param articleId 帖子id
     * @param type      1=点赞 ；2=评论 ；3=收藏 ； 4=分享
     * @param userId
     **/
    void updateArticleCount(String articleId, Integer type, String userId);
}
